package com.dowsure.apisaas.model;

import com.dowsure.apisaas.annotation.RequestParamValidated;
import com.dowsure.apisaas.enums.CurrencyEnums;
import com.dowsure.apisaas.enums.MarketplaceEnums;
import com.dowsure.apisaas.enums.TermUnitEnums;
import lombok.Data;

import java.math.BigDecimal;

/**
 * @description: 卖家信息
 * @author: Dowsure
 * @create: 2022-02-21 17:07
 **/
@Data
public class SellerOfferSeller {

    /**
     * 卖家ID
     */
    @RequestParamValidated(required = true, msg = "卖家ID", maxLen = 32)
    private String sellerId;

    /**
     * 站点
     */
    @RequestParamValidated(required = true, msg = "站点")
    private MarketplaceEnums region;

    /**
     * 平台需要锁定验证卖家回款账号
     */
    @RequestParamValidated(required = true, msg = "平台需要锁定验证卖家回款账号", maxLen = 50)
    private String vaAccount;

    /**
     * 美国回款路线
     */
    @RequestParamValidated(msg = "美国回款路线", maxLen = 20)
    private String routingNumber;

    /**
     * 收款银行代码
     */
    @RequestParamValidated(msg = "收款银行代码", maxLen = 20)
    private String swiftCode;

    /**
     * 最小贷款金额
     */
    @RequestParamValidated(required = true, msg = "最小贷款金额")
    private BigDecimal minLoanAmount;

    /**
     * 最大贷款金额
     */
    @RequestParamValidated(required = true, msg = "最大贷款金额")
    private BigDecimal maxLoanAmount;

    /**
     * 最小利率
     */
    @RequestParamValidated(required = true, msg = "最小利率")
    private BigDecimal minApr;

    /**
     * 最大利率
     */
    @RequestParamValidated(required = true, msg = "最大利率")
    private BigDecimal maxApr;

    /**
     * 授信期限
     */
    @RequestParamValidated(required = true, msg = "授信期限")
    private Integer term;

    /**
     * 授信期限单位
     * DAY（天）、MONTH（月）、YEAR（年）
     */
    @RequestParamValidated(required = true, msg = "授信期限单位")
    private TermUnitEnums termUnit;

    /**
     * 币种（ISO 4217 currency codes）
     * CNY（人民币）、USD（美元）
     */
    @RequestParamValidated(required = true, msg = "币种", maxLen = 32)
    private CurrencyEnums currencyCode;
}
